using System.Collections.Generic;
using System.Data.Objects;
using System.Collections;

namespace Higgs.Web.AtomPub.Models
{
    public interface IBlogContext<TEntry, TCategory, TMediaItem>
        where TEntry : class, IEntry
        where TCategory : class, ICategory
        where TMediaItem : class, IMediaItem
    {
        ObjectSet<TEntry> Entries { get; }
        ObjectSet<TCategory> Categories { get; }
        ObjectSet<TMediaItem> MediaItems { get; }

        int SaveChanges();
        ICollection<TCategory> GetCategoriesCollection(TEntry entry);
        ICollection<TMediaItem> GetMediaItemCollection(TEntry entry);
    }
}
